#pragma once


#include "rtda/frame.h"
#include "instructions/base/instructions.h"

namespace jvm {
namespace instructions {

// 这里继承哪个基类好？

// Push byte
class BIPUSH : public Instruction {
public:
    void fetchOperands(std::shared_ptr<BytecodeReader> reader) override;

    void execute(std::shared_ptr<rtda::Frame> p_frame) override;
private:
    int8_t _val;
};

// Push short
class SIPUSH : public Instruction {
public:
    void fetchOperands(std::shared_ptr<BytecodeReader> reader) override;

    void execute(std::shared_ptr<rtda::Frame> p_frame) override;

private:
    int16_t _val;
};



} // namespace instructions
} // namespace jvm


